/*
 *
 * Copyright 2017 PingCAP, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package org.apache.spark.sql.expression.index

import org.apache.spark.sql.BaseInitialOnceTest

class CoveringIndex0Suite extends BaseInitialOnceTest {
  private val allCases = Seq[String](
    // cover index tests with count(*)
    "select count(*) from full_data_type_table_idx where tp_varchar < 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_varchar > 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_varchar <= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_varchar >= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_varchar = 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_varchar != 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_varchar <> 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select count(*) from full_data_type_table_idx where tp_datetime < timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_datetime > timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_datetime <= timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_datetime >= timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_datetime = timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_datetime != timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_datetime <> timestamp '2017-11-02 00:00:00'",
    "select count(*) from full_data_type_table_idx where tp_date < date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_date > date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_date <= date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_date >= date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_date = date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_date != date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_date <> date '2017-11-02'",
    "select count(*) from full_data_type_table_idx where tp_timestamp < timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_timestamp > timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_timestamp <= timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_timestamp >= timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_timestamp = timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_timestamp != timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_timestamp <> timestamp '2017-11-02 08:47:44'",
    "select count(*) from full_data_type_table_idx where tp_bigint < 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_bigint > 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_bigint <= 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_bigint >= 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_bigint = 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_bigint != 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_bigint <> 9003378287025114833",
    "select count(*) from full_data_type_table_idx where tp_decimal < 29",
    "select count(*) from full_data_type_table_idx where tp_decimal > 29",
    "select count(*) from full_data_type_table_idx where tp_decimal <= 29",
    "select count(*) from full_data_type_table_idx where tp_decimal >= 29",
    "select count(*) from full_data_type_table_idx where tp_decimal = 29",
    "select count(*) from full_data_type_table_idx where tp_decimal != 29",
    "select count(*) from full_data_type_table_idx where tp_decimal <> 29",
    "select count(*) from full_data_type_table_idx where tp_double < 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_double > 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_double <= 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_double >= 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_double = 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_double != 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_double <> 0.13951701",
    "select count(*) from full_data_type_table_idx where tp_float < 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_float > 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_float <= 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_float >= 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_float = 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_float != 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_float <> 0.7112122",
    "select count(*) from full_data_type_table_idx where tp_int < -1743165246",
    "select count(*) from full_data_type_table_idx where tp_int > -1743165246",
    "select count(*) from full_data_type_table_idx where tp_int <= -1743165246",
    "select count(*) from full_data_type_table_idx where tp_int >= -1743165246",
    "select count(*) from full_data_type_table_idx where tp_int = -1743165246",
    "select count(*) from full_data_type_table_idx where tp_int != -1743165246",
    "select count(*) from full_data_type_table_idx where tp_int <> -1743165246",
    "select count(*) from full_data_type_table_idx where tp_mediumint < 942999",
    "select count(*) from full_data_type_table_idx where tp_mediumint > 942999",
    "select count(*) from full_data_type_table_idx where tp_mediumint <= 942999",
    "select count(*) from full_data_type_table_idx where tp_mediumint >= 942999",
    "select count(*) from full_data_type_table_idx where tp_mediumint = 942999",
    "select count(*) from full_data_type_table_idx where tp_mediumint != 942999",
    "select count(*) from full_data_type_table_idx where tp_mediumint <> 942999",
    "select count(*) from full_data_type_table_idx where tp_real < 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_real > 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_real <= 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_real >= 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_real = 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_real != 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_real <> 0.5251451037290893",
    "select count(*) from full_data_type_table_idx where tp_smallint < 193813",
    "select count(*) from full_data_type_table_idx where tp_smallint > 193813",
    "select count(*) from full_data_type_table_idx where tp_smallint <= 193813",
    "select count(*) from full_data_type_table_idx where tp_smallint >= 193813",
    "select count(*) from full_data_type_table_idx where tp_smallint = 193813",
    "select count(*) from full_data_type_table_idx where tp_smallint != 193813",
    "select count(*) from full_data_type_table_idx where tp_smallint <> 193813",
    "select count(*) from full_data_type_table_idx where tp_tinyint < 30",
    "select count(*) from full_data_type_table_idx where tp_tinyint > 30",
    "select count(*) from full_data_type_table_idx where tp_tinyint <= 30",
    "select count(*) from full_data_type_table_idx where tp_tinyint >= 30",
    "select count(*) from full_data_type_table_idx where tp_tinyint = 30",
    "select count(*) from full_data_type_table_idx where tp_tinyint != 30",
    "select count(*) from full_data_type_table_idx where tp_tinyint <> 30",
    "select count(*) from full_data_type_table_idx where tp_char < 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_char > 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_char <= 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_char >= 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_char = 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_char != 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_char <> 'f5ydp4uwoA'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar < '5vNT8'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar > '5vNT8'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar <= '5vNT8'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar >= '5vNT8'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar = '5vNT8'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar != '5vNT8'",
    "select count(*) from full_data_type_table_idx where tp_nvarchar <> '5vNT8'",
    // cover index tests: select {S} where {T} (T ∈ UnitSet and T ∈ S)
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar < 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar > 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar <= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar >= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar = 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar != 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_varchar from full_data_type_table_idx where tp_varchar <> 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime < timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime > timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime <= timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime >= timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime = timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime != timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_datetime from full_data_type_table_idx where tp_datetime <> timestamp '2017-11-02 00:00:00'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date < date '2017-11-02'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date > date '2017-11-02'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date <= date '2017-11-02'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date >= date '2017-11-02'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date = date '2017-11-02'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date != date '2017-11-02'",
    "select tp_int, tp_date from full_data_type_table_idx where tp_date <> date '2017-11-02'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp < timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp > timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp <= timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp >= timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp = timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp != timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_timestamp from full_data_type_table_idx where tp_timestamp <> timestamp '2017-11-02 08:47:44'",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint < 9003378287025114833",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint > 9003378287025114833",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint <= 9003378287025114833",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint >= 9003378287025114833",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint = 9003378287025114833",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint != 9003378287025114833",
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_bigint <> 9003378287025114833",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal < 29",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal > 29",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal <= 29",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal >= 29",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal = 29",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal != 29",
    "select tp_int, tp_decimal from full_data_type_table_idx where tp_decimal <> 29",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double < 0.13951701",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double > 0.13951701",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double <= 0.13951701",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double >= 0.13951701",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double = 0.13951701",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double != 0.13951701",
    "select tp_int, tp_double from full_data_type_table_idx where tp_double <> 0.13951701",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float < 0.7112122",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float > 0.7112122",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float <= 0.7112122",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float >= 0.7112122",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float = 0.7112122",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float != 0.7112122",
    "select tp_int, tp_float from full_data_type_table_idx where tp_float <> 0.7112122",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt < 40",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt > 40",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt <= 40",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt >= 40",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt = 40",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt != 40",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt <> 40",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint < 942999",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint > 942999",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint <= 942999",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint >= 942999",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint = 942999",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint != 942999",
    "select tp_int, tp_mediumint from full_data_type_table_idx where tp_mediumint <> 942999",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real < 0.5251451037290893",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real > 0.5251451037290893",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real <= 0.5251451037290893",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real >= 0.5251451037290893",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real = 0.5251451037290893",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real != 0.5251451037290893",
    "select tp_int, tp_real from full_data_type_table_idx where tp_real <> 0.5251451037290893",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint < 193813",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint > 193813",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint <= 193813",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint >= 193813",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint = 193813",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint != 193813",
    "select tp_int, tp_smallint from full_data_type_table_idx where tp_smallint <> 193813",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint < 30",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint > 30",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint <= 30",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint >= 30",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint = 30",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint != 30",
    "select tp_int, tp_tinyint from full_data_type_table_idx where tp_tinyint <> 30",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char < 'f5ydp4uwoA'",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char > 'f5ydp4uwoA'",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char <= 'f5ydp4uwoA'",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char >= 'f5ydp4uwoA'",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char = 'f5ydp4uwoA'",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char != 'f5ydp4uwoA'",
    "select tp_int, tp_char from full_data_type_table_idx where tp_char <> 'f5ydp4uwoA'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar < '5vNT8'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar > '5vNT8'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar <= '5vNT8'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar >= '5vNT8'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar = '5vNT8'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar != '5vNT8'",
    "select tp_int, tp_nvarchar from full_data_type_table_idx where tp_nvarchar <> '5vNT8'",
    // cover index tests: select {S} where {T} (S ∈ UnitSet and S ∈ T)
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar < 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar < 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar > 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar > 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar <= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar <= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar >= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar >= 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar = 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar = 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar != 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar != 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_varchar from full_data_type_table_idx where tp_int < 2333 and tp_varchar <> 'a1c9e581-470a-4594-a72d-55ce40dd6ec3'",
    "select tp_varchar from full_data_type_table_idx where tp_varchar <> 'a1c9e581-470a-4594-a72d-55ce40dd6ec3' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime < timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime < timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime > timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime > timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime <= timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime <= timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime >= timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime >= timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime = timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime = timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime != timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime != timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_datetime from full_data_type_table_idx where tp_int < 2333 and tp_datetime <> timestamp '2017-11-02 00:00:00'",
    "select tp_datetime from full_data_type_table_idx where tp_datetime <> timestamp '2017-11-02 00:00:00' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date < date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date < date '2017-11-02' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date > date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date > date '2017-11-02' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date <= date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date <= date '2017-11-02' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date >= date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date >= date '2017-11-02' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date = date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date = date '2017-11-02' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date != date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date != date '2017-11-02' and tp_int != 2333",
    "select tp_date from full_data_type_table_idx where tp_int < 2333 and tp_date <> date '2017-11-02'",
    "select tp_date from full_data_type_table_idx where tp_date <> date '2017-11-02' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp < timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp < timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp > timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp > timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp <= timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp <= timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp >= timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp >= timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp = timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp = timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp != timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp != timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_timestamp from full_data_type_table_idx where tp_int < 2333 and tp_timestamp <> timestamp '2017-11-02 08:47:44'",
    "select tp_timestamp from full_data_type_table_idx where tp_timestamp <> timestamp '2017-11-02 08:47:44' and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint < 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint < 9003378287025114833 and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint > 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint > 9003378287025114833 and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint <= 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint <= 9003378287025114833 and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint >= 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint >= 9003378287025114833 and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint = 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint = 9003378287025114833 and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint != 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint != 9003378287025114833 and tp_int != 2333",
    "select tp_bigint from full_data_type_table_idx where tp_int < 2333 and tp_bigint <> 9003378287025114833",
    "select tp_bigint from full_data_type_table_idx where tp_bigint <> 9003378287025114833 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal < 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal < 29 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal > 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal > 29 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal <= 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal <= 29 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal >= 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal >= 29 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal = 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal = 29 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal != 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal != 29 and tp_int != 2333",
    "select tp_decimal from full_data_type_table_idx where tp_int < 2333 and tp_decimal <> 29",
    "select tp_decimal from full_data_type_table_idx where tp_decimal <> 29 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double < 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double < 0.13951701 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double > 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double > 0.13951701 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double <= 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double <= 0.13951701 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double >= 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double >= 0.13951701 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double = 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double = 0.13951701 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double != 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double != 0.13951701 and tp_int != 2333",
    "select tp_double from full_data_type_table_idx where tp_int < 2333 and tp_double <> 0.13951701",
    "select tp_double from full_data_type_table_idx where tp_double <> 0.13951701 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float < 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float < 0.7112122 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float > 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float > 0.7112122 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float <= 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float <= 0.7112122 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float >= 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float >= 0.7112122 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float = 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float = 0.7112122 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float != 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float != 0.7112122 and tp_int != 2333",
    "select tp_float from full_data_type_table_idx where tp_int < 2333 and tp_float <> 0.7112122",
    "select tp_float from full_data_type_table_idx where tp_float <> 0.7112122 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt < 40",
    "select id_dt from full_data_type_table_idx where id_dt < 40 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt > 40",
    "select id_dt from full_data_type_table_idx where id_dt > 40 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt <= 40",
    "select id_dt from full_data_type_table_idx where id_dt <= 40 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt >= 40",
    "select id_dt from full_data_type_table_idx where id_dt >= 40 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt = 40",
    "select id_dt from full_data_type_table_idx where id_dt = 40 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt != 40",
    "select id_dt from full_data_type_table_idx where id_dt != 40 and tp_int != 2333",
    "select id_dt from full_data_type_table_idx where tp_int < 2333 and id_dt <> 40",
    "select id_dt from full_data_type_table_idx where id_dt <> 40 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint < 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint < 942999 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint > 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint > 942999 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint <= 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint <= 942999 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint >= 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint >= 942999 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint = 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint = 942999 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint != 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint != 942999 and tp_int != 2333",
    "select tp_mediumint from full_data_type_table_idx where tp_int < 2333 and tp_mediumint <> 942999",
    "select tp_mediumint from full_data_type_table_idx where tp_mediumint <> 942999 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real < 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real < 0.5251451037290893 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real > 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real > 0.5251451037290893 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real <= 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real <= 0.5251451037290893 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real >= 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real >= 0.5251451037290893 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real = 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real = 0.5251451037290893 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real != 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real != 0.5251451037290893 and tp_int != 2333",
    "select tp_real from full_data_type_table_idx where tp_int < 2333 and tp_real <> 0.5251451037290893",
    "select tp_real from full_data_type_table_idx where tp_real <> 0.5251451037290893 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint < 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint < 193813 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint > 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint > 193813 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint <= 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint <= 193813 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint >= 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint >= 193813 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint = 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint = 193813 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint != 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint != 193813 and tp_int != 2333",
    "select tp_smallint from full_data_type_table_idx where tp_int < 2333 and tp_smallint <> 193813",
    "select tp_smallint from full_data_type_table_idx where tp_smallint <> 193813 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint < 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint < 30 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint > 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint > 30 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint <= 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint <= 30 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint >= 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint >= 30 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint = 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint = 30 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint != 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint != 30 and tp_int != 2333",
    "select tp_tinyint from full_data_type_table_idx where tp_int < 2333 and tp_tinyint <> 30",
    "select tp_tinyint from full_data_type_table_idx where tp_tinyint <> 30 and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char < 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char < 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char > 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char > 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char <= 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char <= 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char >= 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char >= 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char = 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char = 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char != 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char != 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_char from full_data_type_table_idx where tp_int < 2333 and tp_char <> 'f5ydp4uwoA'",
    "select tp_char from full_data_type_table_idx where tp_char <> 'f5ydp4uwoA' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar < '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar < '5vNT8' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar > '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar > '5vNT8' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar <= '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar <= '5vNT8' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar >= '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar >= '5vNT8' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar = '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar = '5vNT8' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar != '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar != '5vNT8' and tp_int != 2333",
    "select tp_nvarchar from full_data_type_table_idx where tp_int < 2333 and tp_nvarchar <> '5vNT8'",
    "select tp_nvarchar from full_data_type_table_idx where tp_nvarchar <> '5vNT8' and tp_int != 2333",
    "select tp_int from full_data_type_table_idx where tp_real > 0.7 and tp_int >= 2333",
    // cover index tests: select {S} where {T} (S ∩ T != ∅)
    "select id_dt, tp_int from full_data_type_table_idx where tp_int > 2333 and tp_real > 0.7",
    "select tp_int, id_dt from full_data_type_table_idx where id_dt < 40 and tp_real > 0.7",
    // cover index tests: select {S} where {T} (S ∩ T = ∅)
    "select tp_int from full_data_type_table_idx where tp_real > 0.7",
    "select tp_int, tp_real from full_data_type_table_idx where id_dt > 40",
    "select id_dt, tp_real from full_data_type_table_idx where tp_int >= 2333",
    "select id_dt from full_data_type_table_idx where tp_real > 0.7 and tp_int <= 2333",
    // cover index tests: select {S} where {T} (S ∪ T) ∈ U_{index + pk}
    "select tp_real, tp_int from full_data_type_table_idx where tp_int >= 2333 and id_dt < 20",
    "select id_dt, tp_real from full_data_type_table_idx where tp_int > 2333 and id_dt < 20",
    "select tp_int, tp_real from full_data_type_table_idx where id_dt > 40 and tp_int < 2333",
    "select tp_real, id_dt, tp_int from full_data_type_table_idx where tp_int >= 2333",
    "select id_dt, tp_int from full_data_type_table_idx where tp_real > 0.7 and tp_int <= 2333",
    // cover index tests: select {S} where {T} (distinct(S) != S)
    "select tp_int, tp_int from full_data_type_table_idx where tp_real > 0.7",
    "select id_dt, tp_real, id_dt from full_data_type_table_idx where tp_real between 0.5 and 0.7",
    "select tp_real, id_dt, tp_real from full_data_type_table_idx where tp_real > 0.7 and tp_int <= 2333",
    // cover index tests: aggregations, group by, order by and limit
    "select avg(tp_int) from full_data_type_table_idx where tp_int <= 2333 group by tp_tinyint order by tp_tinyint desc limit 20",
    // cover index tests: projection with expression
    "select tp_int + 500 from full_data_type_table_idx where tp_real > 0.7",
    "select -tp_int, tp_real from full_data_type_table_idx where id_dt > 40",
    "select tp_real * 200 from full_data_type_table_idx where tp_int >= 2333",
    "select (tp_real + (id_dt * 5)) * 2.2 from full_data_type_table_idx where tp_real > 0.7 and tp_int <= 2333",
    // cover index tests: filter with expression
    "select tp_int from full_data_type_table_idx where tp_real + 0.5 > 0.7",
    "select tp_int, tp_real from full_data_type_table_idx where id_dt * 2 > 40",
    "select id_dt, tp_real from full_data_type_table_idx where -tp_int >= -2333",
    "select tp_int from full_data_type_table_idx where tp_real > tp_int",
    "select tp_int from full_data_type_table_idx where -tp_real > tp_int",
    // cover index tests: complex case
    "select tp_int + 500 from full_data_type_table_idx where tp_real + 0.5 > 0.7",
    "select 1 + tp_int, tp_real / 3.14 from full_data_type_table_idx where id_dt * tp_real > 20",
    "select id_dt, tp_int - id_dt from full_data_type_table_idx where tp_real between tp_int and 0.7",
    "select avg(tp_int/1000), sum(id_dt) from full_data_type_table_idx where 2333 <= tp_int group by tp_tinyint order by tp_tinyint desc limit 20",
    // index double read:
    "select tp_int, tp_bigint from full_data_type_table_idx where tp_real > 0.7",
    "select tp_int, tp_real from full_data_type_table_idx where id_dt > 40 and tp_bigint < 0",
    "select id_dt, tp_real from full_data_type_table_idx where tp_int >= tp_bigint",
    "select tp_bigint from full_data_type_table_idx where tp_real > 0.7 and tp_int <= 2333",
    // special case:
    "select id_dt from full_data_type_table_idx where (tp_int is null or tp_int = 4355836469450447576) and tp_tinyint < 100 order by id_dt",
    "select id_dt from full_data_type_table_idx where tp_int is null and tp_tinyint < 100 order by id_dt",
    "select id_dt from full_data_type_table_idx where tp_int = 4355836469450447576 is null and tp_tinyint < 100 order by id_dt")

  test("Test index - Covering Index") {
    allCases.foreach { query =>
      runTest(query)
    }
  }

}
